import { createApp } from 'vue'
import './app.less'

import { IconFont } from '@nutui/icons-vue'
import { ConfigProvider  } from '@nutui/nutui-taro'
import '@nutui/icons-vue/dist/style_iconfont.css'

// 导入 pinia
import { createPinia } from 'pinia'
import {dictTree} from "./api/dict";
import Taro from "@tarojs/taro";
import {commonAreaJson} from "./api/dev";
// 创建 pinia 实例
const pinia = createPinia()


const versionCheck=()=>{
  const updateManager = Taro.getUpdateManager()
  updateManager.onCheckForUpdate(function (res) {
    // 请求完新版本信息的回调
    console.log("请求完新版本信息的回调",res.hasUpdate)
  })
  updateManager.onUpdateReady(function () {
    Taro.showModal({
      title: '更新提示',
      content: '新版本已经准备好，是否重启应用？',
      success: function (res) {
        if (res.confirm) {
          // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
          updateManager.applyUpdate()
        }
      }
    })
  })
  updateManager.onUpdateFailed(function () {
    // 新的版本下载失败
    console.log("新的版本下载失败")
  })
}

const App = createApp({

  mounted () {
    console.log("mounted")

    // 版本检查
    versionCheck();
    // 加载字典
    dictTree({category:"BIZ"}).then(res=>{
      Taro.setStorageSync("dict", JSON.stringify(res.data))
    })
    // 加载地区
    commonAreaJson().then(res=>{
      Taro.setStorageSync("areaJson", JSON.stringify(res.data))
    })


  },

  // 对应 onLaunch
  onLaunch () {},

  // 对应 onShow
  onShow (options) {},

  // 对应 onHide
  onHide () {},

  // 入口组件不需要实现 render 方法，即使实现了也会被 taro 所覆盖


})
App.use(IconFont)
    .use(pinia)
.use(ConfigProvider)

export default App
